/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.apps.epocket.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;

/**
 *
 * @author fikri
 */
@Entity
@Table(name = "iklan")
@NamedQueries({
    @NamedQuery(name = "Pengiklanan.findAll", query = "SELECT p FROM Pengiklanan p")})
public class Pengiklanan implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)    
    @Column(name = "id_iklan")
    private Integer idIklan;
    
    
    @Column(name = "nama_iklan")
    private String namaIklan;
    
    @Column(name = "nama_pengiklan")
    private String namaPengiklan;
    
    @Column(name = "email_pengiklan")
    private String emailPengiklan;
    
    @Column(name = "harga_iklan")
    private float hargaIklan;    
   
    @Column(name = "no_tel")
    private String noTel;    
    
    @Column(name = "no_kp")
    private String noKp;    
    
    @ManyToOne
    @JoinColumn (name = "kategori_produk", nullable = true)
    private KategoriProduk kategoriProduk;
    
    @ManyToOne
    @JoinColumn (name = "negeri_iklan", nullable = true)
    private KodNegeri negeriIklan;
    
    @Column(name = "catatan_iklan")
    private String catatanIklan;    
    
//    @Column(name = "dok_produk")
//    private String dokProduk;
   
    @Column(name = "trh_masuk")
    @Temporal(TemporalType.TIMESTAMP)
    private Date trhMasuk;
    
    @Column(name = "status_iklan")
    private String statusPengiklanan;
    
    @OneToMany (mappedBy = "pengiklanan", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<DokumenPengiklanan> senaraiDokumenPengiklanan;   
    

    public Pengiklanan() {
    }

    public Pengiklanan(Integer idIklan) {
        this.idIklan = idIklan;
    }

    public Pengiklanan(Integer idIklan, String namaIklan, float hargaIklan, String noTel, String noKp,
            KategoriProduk kategoriProduk, Date trhMasuk, String statusPengiklanan) {
        this.idIklan = idIklan;
        this.namaIklan = namaIklan;
        this.hargaIklan = hargaIklan;
        this.noTel = noTel;
        this.noKp = noKp;
        this.kategoriProduk = kategoriProduk;        
        this.trhMasuk = trhMasuk;
        this.statusPengiklanan = statusPengiklanan;
    }

    public String getNamaPengiklan() {
        return namaPengiklan;
    }

    public String getEmailPengiklan() {
        return emailPengiklan;
    }

    public void setEmailPengiklan(String emailPengiklan) {
        this.emailPengiklan = emailPengiklan;
    }

    public void setNamaPengiklan(String namaPengiklan) {
        this.namaPengiklan = namaPengiklan;
    }
    
    public Integer getIdIklan() {
        return idIklan;
    }

    public void setIdIklan(Integer idIklan) {
        this.idIklan = idIklan;
    }

    public String getNamaIklan() {
        return namaIklan;
    }

    public void setNamaIklan(String namaIklan) {
        this.namaIklan = namaIklan;
    }

    public float getHargaIklan() {
        return hargaIklan;
    }

    public void setHargaIklan(float hargaIklan) {
        this.hargaIklan = hargaIklan;
    }

    public String getNoTel() {
        return noTel;
    }

    public void setNoTel(String noTel) {
        this.noTel = noTel;
    }

    public String getNoKp() {
        return noKp;
    }

    public void setNoKp(String noKp) {
        this.noKp = noKp;
    }

    public KategoriProduk getKategoriProduk() {
        return kategoriProduk;
    }

    public void setKategoriProduk(KategoriProduk kategoriProduk) {
        this.kategoriProduk = kategoriProduk;
    }

    public String getCatatanIklan() {
        return catatanIklan;
    }

    public void setCatatanIklan(String catatanIklan) {
        this.catatanIklan = catatanIklan;
    }    

    public Date getTrhMasuk() {
        return trhMasuk;
    }

    public void setTrhMasuk(Date trhMasuk) {
        this.trhMasuk = trhMasuk;
    }

    public String getStatusPengiklanan() {
        return statusPengiklanan;
    }

    public void setStatusPengiklanan(String statusPengiklanan) {
        this.statusPengiklanan = statusPengiklanan;
    }   

    public List<DokumenPengiklanan> getSenaraiDokumenPengiklanan() {
        return senaraiDokumenPengiklanan;
    }

    public void setSenaraiDokumenPengiklanan(List<DokumenPengiklanan> senaraiDokumenPengiklanan) {
        this.senaraiDokumenPengiklanan = senaraiDokumenPengiklanan;
    }

    public KodNegeri getNegeriIklan() {
        return negeriIklan;
    }

    public void setNegeriIklan(KodNegeri negeriIklan) {
        this.negeriIklan = negeriIklan;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idIklan != null ? idIklan.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Pengiklanan)) {
            return false;
        }
        Pengiklanan other = (Pengiklanan) object;
        if ((this.idIklan == null && other.idIklan != null) || (this.idIklan != null && !this.idIklan.equals(other.idIklan))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.apps.epocket.model.Pengiklanan[ idIklan=" + idIklan + " ]";
    }
    
}
